/*
一、 类的兼容性
1. 两个类一样就兼容，比较的是实例长得什么样
> 一样：你要的我有就可以
2.  类中如果出现了 private , protected 时，永远不兼容

二、枚举类型永远不兼容
-- enum 型永远不兼容

三、 泛型的兼容性
> 根据最终结果确定是否兼容, 不看定义时的写法

 */


//--------------泛型的兼容--------------------------

interface A<T> {
    [key: string]: T
}
interface B<T> {
    [key: string]: T
}

type A1 = A<string>
type B1 = B<number>

let a1!: A1
let a2!: B1
a1 = a2 // 因 A 与 B 的 T 类型不一样，所以不兼容







export { }